import 'package:flutter/cupertino.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:sonora/bloc/base/sj_base_event.dart';

part 'sj_home_event.freezed.dart';

@freezed
class SjHomeEvent extends SjBaseEvent with _$SjHomeEvent {
  const factory SjHomeEvent.initial({required BuildContext context}) = SjHomeEventInitial;
  const factory SjHomeEvent.loading() = SjHomeEventLoading;
  const factory SjHomeEvent.loadedWallSearch({Function? callback}) = SjHomeEventLoadedWallSearch;
  const factory SjHomeEvent.networkError() = SjHomeEventNetworkError;
  const factory SjHomeEvent.clickLikeButton(bool isLiked, String worksId) = SjHomeEventClickLikeButton;
    const factory SjHomeEvent.autoTranslate({required bool autoTranslate}) = SjHomeEventAutoTranslate;
  const factory SjHomeEvent.friend({required String followUserId}) = SjHomeEventFriend;
  const factory SjHomeEvent.unFriend({required String followUserId}) = SjHomeEventUnFriend;
  const factory SjHomeEvent.insertRecord({String? broadcasterId, String? complainCategory, String? complainSub, VoidCallback? callback}) = SjHomeEventInsertRecord;
  const factory SjHomeEvent.removeBlock({required String broadcasterId}) = SjHomeEventRemoveBlock;
  const factory SjHomeEvent.loadedFollowList() = SjHomeEventLoadedFollowList;
  const factory SjHomeEvent.loadedBlockList() = SjHomeEventLoadedBlockList;
    const factory SjHomeEvent.insertReport(
      {String? broadcasterId,
      String? complainCategory,
      String? complainSub,
      Function? callback}) = SjHomeEventInsertReport;
}